The present invention relates to the field of computer programming in general and more particularly to terminal emulation programs.
A terminal emulation program may provide an interface between a client workstation and a resource needed by the client workstation. For example, a terminal emulation program embodied in a script running on a client workstation may provide responses to screens generated by the application running on a host computer. The terminal emulation script may provide input to the application as if it were the user. For example, the application may generate a logon screen to which the terminal emulation script may respond with a username/password that allows the client to access the application. In such a case, the terminal emulation script provides input to the application as if it were the user. Consequently, the terminal emulation script may automate some of the interaction between the user and the application.
As the complexity of the host interaction and terminal emulation increases it may be difficult to create an appropriate terminal emulation script. For example, as the use of the Internet increases conventional terminal emulation services may be offered over the World Wide Web (WWW) via a Graphical User Interface (GUI) rather than by traditional terminal emulation. The GUI terminal emulation may specify inputs from the user, how to interact with the application, and what data from the application is to be provided to the user, while host states change dynamically all of which may be difficult to accomplish using a script.
One alternative is to provide for more complex terminal emulation written in a scripting language such as JavaScript, Perl, Visual Basic, or TCL. Unfortunately, some people who support systems offering more complex host interaction and terminal emulation may be unfamiliar with these scripting languages. Moreover, a dedicated parser may be needed to play the emulation program. For example, a JavaScript parser may be needed to parse a terminal emulator script written in JavaScript.
In view of the above, there is a need to provide host interaction and terminal emulation between a client workstation and a resource, which handles dynamic host state changes automatically where the creator of the terminal emulation script may not be familiar with scripting and emulation programming languages used to provide conventional terminal emulation.
It is therefore, an object of the present invention to allow improvement in host interaction and terminal emulation services provided between a client and a resource.
It is another object of the present invention to allow terminal emulation scripts to be created and maintained by persons who are unfamiliar with conventional scripting and emulation programming language.
It is yet another object of the present invention to describe the scripts in a format consistent with emerging internet standard such that it is vendor implementation independent.
These and other objects of the present invention are achieved by representing terminal emulation states of interaction between a client and a resource using ScriptUnits. Furthermore, the ScriptUnits can be manipulated using a visual tool such as a graphical editor. The graphical editor may be used to change existing states in the terminal emulation session and add new states. The graphical manipulation may allow a person who is unfamiliar with source programming languages to support the host interaction and terminal emulation services.
In particular, terminal emulation service according to the present invention may be provided by transitioning from a first terminal emulation state of interaction between the client and the resource to a second terminal emulation state of interaction between the client and the resource selected from a plurality of possible next terminal emulation states based on output provided by the resource and the first terminal emulation state of interaction between the client and the resource.
In a further aspect of the present invention, the ScriptUnits are XML data structures that represent states of interaction in a terminal emulation session provided between the resource and the client. The XML data structure includes a ScriptID tag that represents a present terminal emulation state of interaction between the client and the resource. A StateDescription tag in the XML data structure represents output provided by the resource to the client defining the expected state. A NextState tag represents a next terminal emulation state of interaction between the client and the resource. Where the terminal emulation session can transition to one of a plurality of possible next terminal emulation states, the next terminal emulation state is selected based on the present terminal emulation state and the output provided by the resource following the execution of the action tag.
In one embodiment of the present invention, the client runs on a client workstation and the resource runs on a remote host computer. The terminal emulation program runs on a server logically located between the workstation and the host computer such as when the terminal emulation program runs on a mid-tier server to provide terminal emulation service to client Web browsers accessing resources over the World Wide Web (WWW).